package br.com.pucrs.tcc.bd;

import java.util.ArrayList;

import org.hibernate.SQLQuery;
import org.hibernate.Session;

import br.com.pucrs.tcc.ed.Curso;
import br.com.pucrs.tcc.ed.ItemPriorizacao;

public class ItemPriorizacaoBD {

	private Session mSession;

	public ItemPriorizacaoBD(Session session) {
		mSession = session;
	}
	
	public ArrayList<ItemPriorizacao> listaItensPorCurso(Curso curso) {
		ArrayList<ItemPriorizacao> listaRetorno = null;

		StringBuilder sql = new StringBuilder();
		sql.append("     SELECT i.* ");
		sql.append("       FROM itens_priorizacao i ");
		sql.append(" INNER JOIN ordem_priorizacao o ");
		sql.append("         ON (i.id = o.itens_priorizacao_id) ");
		sql.append("      WHERE o.cursos_id = ? ");
		sql.append("   ORDER BY o.ordem ");

		SQLQuery query = mSession.createSQLQuery(sql.toString());
		query.addEntity(ItemPriorizacao.class);
		query.setInteger(0, curso.getId());

		listaRetorno = (ArrayList<ItemPriorizacao>) query.list();

		return listaRetorno;
	}
	
	public ArrayList<ItemPriorizacao> lista() {
		ArrayList<ItemPriorizacao> listaRetorno = null;

		StringBuilder sql = new StringBuilder();
		sql.append("     SELECT i.* ");
		sql.append("       FROM itens_priorizacao i ");

		SQLQuery query = mSession.createSQLQuery(sql.toString());
		query.addEntity(ItemPriorizacao.class);

		listaRetorno = (ArrayList<ItemPriorizacao>) query.list();

		return listaRetorno;
	}

}
